#ifndef BASE_DEFINES_H
#define BASE_DEFINES_H

#define BASE_MAX_LOG_ENTRY_LENGHT 4096

#ifdef _WIN32
typedef unsigned char uchar8;
typedef char char8;
typedef unsigned short ushort16;
typedef short short16;
typedef unsigned int uint32;
typedef int sint32;
typedef unsigned __int64 uint64;
typedef __int64 sint64;
#endif

typedef enum EBaseError_s
{
    BASE_SUCCEED = 0,
    BASE_READ_CONF_FAILED,
    BASE_LOG_INIT_FAILED,
    BASE_LOG_FAILED
} EBaseError;

typedef enum EBaseLogLevel_s
{
    LOG_ERROR = 1,
    LOG_WARN = 2,
    LOG_INFO = 4,
    LOG_DEBUG = 8,
} EBaseLogLevel;

typedef struct BaseLog_s
{
    void* handle;
    uchar8* path;
    uint64 max_size;
} BaseLog;

typedef struct BaseConf_s
{
    EBaseLogLevel log_level;

} BaseConf;

typedef struct Globals_s
{
    BaseConf conf;
    BaseLog log;
} Globals;


#endif